//#include <iostream>
//using namespace std;
//const int N = 1e6 + 10;
//int e[N], ne[N], h, id;
//int mp[N];
//int main()
//{
//	id++;
//	e[id] = 1;
//	mp[1] = id;
//	int q;
//	int num, x, y;
//	cin >> q;
//	int p;
//	while (q--)
//        {
//			cin >> num>> x;
//			p = mp[x];
//			if (num == 1)
//			{
//				cin >> y;
//				id++;
//				e[id] = y;
//				ne[id] = ne[p];
//				ne[p] = id;
//				mp[y] = id;
//			}
//			else if (num == 2)
//			{
//				cout << e[ne[p]] << endl;
//			}
//			else if(num == 3)
//			{
//				ne[p] = ne[ne[p]];
//			}
//		}
//	return 0;
//}
//#include <iostream>
//using namespace std;
//const int N = 2e6;
//int n;
//int e[N],ne[N],id,i;
//int m;
//int main()
//{
//	cin >> n;
//	while (n--)
//	{
//		id++;
//		e[id] = id;
//		cin >> ne[id];
//	}
//	cin >> m;
//	for (i = m;i;i = ne[i])
//	{
//		cout << i << " ";
//	
//	}
//	return 0;
//}
